package itheima04_最后练习;

import java.util.ArrayList;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Predicate;
import java.util.stream.Stream;

/**
 * @author xxx
 * @date 2020/12/25 3:25
 * @description
 */
public class Test {
    public static void main(String[] args) {
       /*需求:设一个list数组有5组数据，都是人名
        1. 首先筛选所有姓王的人；
        2. 然后筛选名字有两个字的人；
        3. 最后进行对结果进行打印输出。
          按照传统集合操作的方式，使用java8最新的Stream，并转化为lambda表达式*/

        List<String>list=new ArrayList();
        list.add("张良");
        list.add("王和破");
        list.add("晓月");
        list.add("王大陆");
        list.add("金马两");
        list.add("王天");
        list.add("王垓");

        Stream<String> stream=list.stream().filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return s.startsWith("王");
            }
        });


        Stream<String> stream1=stream.filter(new Predicate<String>() {
            @Override
            public boolean test(String s) {
                return s.length()==2;
            }
        });

        stream1.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });

        Stream<String> stream11=list.stream().filter(s -> s.startsWith("王"));


        Stream<String> stream12=stream.filter(s -> s.length()==2);

        stream12.forEach(s -> System.out.println(s));

    }
}
